#ifndef EPARKINGMAINWINDOW_H
#define EPARKINGMAINWINDOW_H

#include <QMainWindow>
#include <QStringListModel>
#include <QTimer.h>
#include <QTime>
#include <QDate>
#include <QLocale> // 添加语言本地化支持（用于中文星期）
#include <QRegularExpression>
#include <QMessageBox>
#include <QInputDialog>
#include <QStandardItemModel>
#include <QPropertyAnimation>
#include <QGraphicsOpacityEffect>
#include "eparking_sqlite.h"
#include "internalvehicledialog.h"
#include "eparking_vehiclevalidator.h"
#include "eparking_billcalc.h"

QT_BEGIN_NAMESPACE
namespace Ui {
class EParkingMainWindow;
}
QT_END_NAMESPACE

class EParkingMainWindow : public QMainWindow
{
    Q_OBJECT

public:
    EParkingMainWindow(QWidget *parent = nullptr);
    ~EParkingMainWindow();
    EParkingSqlite db;

private:
    Ui::EParkingMainWindow *ui;
    void updateTime();

    QStringListModel *parkingListModel;
    QStandardItemModel *parkingRecordsModel; // 数据模型
    EParking_VehicleValidator vehicleValidator;
    eparking_billcalc billCalc;
    void refreshParkingList();
    //更新库内车辆列表
    void refreshParkingRecords();
    //更新停车记录表格

private slots:
    void onParkingListItemClicked(const QModelIndex &index);
    //单击已入库车辆列表，可以把车牌快速输入，方便出库
    void on_pushButton_in_clicked();
    //单击入库按钮
    void on_pushButton_out_clicked();
    //单击出库按钮
    void updateStatusText();
    //更新状态文本
    void on_pushButton_innercar_window_clicked();
    //单击内部车辆管理按钮弹出窗口
    void showFloatingMessage(const QString &message);
};
#endif // EPARKINGMAINWINDOW_H
